package cliente;

import hibernate.dao.ClienteDAO;
import hibernate.dao.HibernateConnection;
import skin.LookAndFeelSelector;
import utilitarios.JPanelPersonalizavel;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.text.MaskFormatter;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;

public class FrmAlterarExcluirCli extends JFrame {

	
	private JPanel contentPane;
	private JLabel lblNome;
	private JLabel lblTelefone;
	private JLabel lblEmail;
	private JLabel lblDtNascimento;
	private JLabel lblSexo;
	private JLabel lblCelular;
	private JFormattedTextField txtTelefone;
	private JTextField txtNome;
	private JTextField txtEmail;
	private JFormattedTextField txtDtNascimento;
	private JFormattedTextField txtCelular;
	private ButtonGroup grupoRadioButton;
	private JRadioButton rdbtnMasculino;
	private JRadioButton rdbtnFeminino;
	private JButton btnAlterar;
	private JButton btnLimpar;
	private JButton btnExcluir;
	private JPanel panelBuscaCliente;
	private JLabel lblSelecionaNome;
	private JComboBox cbListaClientes;
	private JButton btnOk ;
	private JSeparator separator;
	private ClienteDAO c = new ClienteDAO();
	private CtrlCadastrarCliente ctrl = new CtrlCadastrarCliente();
	
	public FrmAlterarExcluirCli()  {
		setTitle("ALTERAR OU EXCLUIR CLIENTES");
		setIconImage(Toolkit.getDefaultToolkit().getImage("C:\\Users\\Leo Kodama\\Documents\\Eclipse Projects\\TesteparaProjeto\\src\\Repositorio\\icon.png"));
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 591, 481);
		setLocationRelativeTo(null);
		contentPane = new JPanelPersonalizavel("src/Repositorio/pink_waves.png");
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		panelBuscaCliente = new JPanel();
		panelBuscaCliente.setBounds(10, 104, 546, 325);
		contentPane.add(panelBuscaCliente);
		panelBuscaCliente.setLayout(null);
		panelBuscaCliente.setEnabled(false);
		
		lblNome = new JLabel("Nome: ");
		lblNome.setFont(new Font("Arial", Font.PLAIN, 18));
		lblNome.setBounds(10, 28, 111, 19);
		panelBuscaCliente.add(lblNome);
		lblNome.setEnabled(false);
		
		txtNome = new JTextField();
		txtNome.setBounds(196, 24, 350, 28);
		panelBuscaCliente.add(txtNome);
		txtNome.setEnabled(false);
		
		
		lblTelefone = new JLabel("Telefone: ");
		lblTelefone.setFont(new Font("Arial", Font.PLAIN, 18));
		lblTelefone.setBounds(10, 63, 111, 19);
		panelBuscaCliente.add(lblTelefone);
		lblTelefone.setEnabled(false);
		
		MaskFormatter mkTel;
		try {
			mkTel = new MaskFormatter("(##) ####-####");
			txtTelefone = new JFormattedTextField(mkTel);
			txtTelefone.setBounds(196, 59, 129, 28);
			panelBuscaCliente.add(txtTelefone);
			txtTelefone.setEnabled(false);
		} catch (ParseException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
		
		
		lblCelular = new JLabel("Celular:");
		lblCelular.setFont(new Font("Arial", Font.PLAIN, 18));
		lblCelular.setBounds(10, 100, 111, 19);
		panelBuscaCliente.add(lblCelular);
		lblCelular.setEnabled(false);
		
		MaskFormatter mkcel;
		try {
			mkcel = new MaskFormatter("(##) #####-####");
			txtCelular = new JFormattedTextField(mkcel);
			txtCelular.setBounds(196, 96, 129, 28);
			panelBuscaCliente.add(txtCelular);
			txtCelular.setEnabled(false);
		} catch (ParseException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	
		
		
		
		lblEmail = new JLabel("E-mail:");
		lblEmail.setFont(new Font("Arial", Font.PLAIN, 18));
		lblEmail.setBounds(10, 141, 111, 19);
		panelBuscaCliente.add(lblEmail);
		lblEmail.setEnabled(false);
		
		txtEmail = new JTextField();
		txtEmail.setBounds(196, 137, 350, 28);
		panelBuscaCliente.add(txtEmail);
		txtEmail.setEnabled(false);
	
		
		lblDtNascimento = new JLabel("Data de Nascimento:");
		lblDtNascimento.setFont(new Font("Arial", Font.PLAIN, 18));
		lblDtNascimento.setBounds(10, 181, 167, 19);
		panelBuscaCliente.add(lblDtNascimento);
		lblDtNascimento.setEnabled(false);
		
		MaskFormatter mkdt;
		try {
			mkdt = new MaskFormatter("##/##/####");
			txtDtNascimento = new JFormattedTextField(mkdt);
			txtDtNascimento.setBounds(196, 177, 98, 28);
			panelBuscaCliente.add(txtDtNascimento);
			txtDtNascimento.setEnabled(false);
		} catch (ParseException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
		
		
		lblSexo = new JLabel("Sexo:");
		lblSexo.setFont(new Font("Arial", Font.PLAIN, 18));
		lblSexo.setBounds(344, 183, 46, 14);
		panelBuscaCliente.add(lblSexo);
		lblSexo.setEnabled(false);
		
		rdbtnMasculino = new JRadioButton("M");
		rdbtnMasculino.setFont(new Font("Arial", Font.PLAIN, 18));
		rdbtnMasculino.setBounds(400, 179, 46, 25);
		panelBuscaCliente.add(rdbtnMasculino);
		rdbtnMasculino.setEnabled(false);
		
		rdbtnFeminino = new JRadioButton("F");
		rdbtnFeminino.setFont(new Font("Arial", Font.PLAIN, 18));
		rdbtnFeminino.setBounds(458, 179, 46, 25);
		panelBuscaCliente.add(rdbtnFeminino);
		rdbtnFeminino.setEnabled(false);
		
		grupoRadioButton = new ButtonGroup();
		grupoRadioButton.add(rdbtnMasculino);
		grupoRadioButton.add(rdbtnFeminino);
		
		btnAlterar = new JButton("Alterar");
		btnAlterar.setBounds(196, 262, 118, 40);
		panelBuscaCliente.add(btnAlterar);
		ActionListener altera = new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				alterar();	
			}
		};
		btnAlterar.addActionListener(altera);
		btnAlterar.setEnabled(false);
		
		btnLimpar = new JButton("Limpar");
		btnLimpar.setBounds(35, 262, 125, 40);
		panelBuscaCliente.add(btnLimpar);
		ActionListener limpar = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				limpar();
			}
		};
		btnLimpar.addActionListener(limpar);
		btnLimpar.setEnabled(false);
		
		
		btnExcluir = new JButton("Excluir");
		btnExcluir.setBounds(363, 262, 118, 40);
		panelBuscaCliente.add(btnExcluir);
		btnExcluir.setEnabled(false);
		btnExcluir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				excluir();
			}
		});
		
		lblSelecionaNome = new JLabel("Selecione um nome: ");
		lblSelecionaNome.setFont(new Font("Arial", Font.PLAIN, 18));
		lblSelecionaNome.setBounds(12, 37, 174, 22);
		contentPane.add(lblSelecionaNome);
		
		cbListaClientes = new JComboBox();
		cbListaClientes.setBounds(198, 35, 236, 28);
		contentPane.add(cbListaClientes);
		ctrl.preencheCB(cbListaClientes);
		
		btnOk = new JButton("OK");
		btnOk.setBounds(467, 35, 89, 28);
		contentPane.add(btnOk);
		ActionListener validar = new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent arg0) {
						
						preencheCampos();
					 	lblNome.setEnabled(true);
						lblTelefone.setEnabled(true);
						lblEmail.setEnabled(true);
						lblDtNascimento.setEnabled(true);
						lblSexo.setEnabled(true);
						lblCelular.setEnabled(true);
						txtTelefone.setEnabled(true);
						txtNome.setEnabled(true);
						txtEmail.setEnabled(true);
						txtDtNascimento.setEnabled(true);
						txtCelular.setEnabled(true);
						rdbtnMasculino.setEnabled(true);
						rdbtnFeminino.setEnabled(true);
						btnAlterar.setEnabled(true);
						btnLimpar.setEnabled(true);
						btnExcluir.setEnabled(true);
						panelBuscaCliente.setEnabled(true);
				
			}
		};
		btnOk.addActionListener(validar);
		
		separator = new JSeparator();
		separator.setBounds(10, 87, 546, 6);
		contentPane.add(separator);
	}
	
	public void alterar(){
		int opcao;
		opcao = (JOptionPane.showConfirmDialog(null,"Voc� realmente deseja alterar esse Cliente?"));
		if(opcao ==0){
		ctrl.alterarCliente(cbListaClientes,txtNome, txtTelefone, txtCelular, txtEmail, txtDtNascimento, rdbtnMasculino, rdbtnFeminino);
		cbListaClientes.removeAllItems();
        ctrl.preencheCB(cbListaClientes);
        JOptionPane.showMessageDialog(null, "Cliente alterado com sucesso!");
		limpar();
		travaCampos();
		
		}
	}
	
	public void limpar(){
		txtNome.setText("");
		txtTelefone.setText("");
		txtCelular.setText("");
		txtEmail.setText("");
		txtDtNascimento.setText("");
	}
	
	public void excluir(){
		int opcao;
		opcao =(JOptionPane.showConfirmDialog(null,"Voc� realmente deseja excluir esse Cliente?"));
		if(opcao ==0){
            String nomeSelecionado = (String) cbListaClientes.getSelectedItem();
		    ctrl.excluirCliente(nomeSelecionado);
            JOptionPane.showMessageDialog(null, "Cliente excluido com sucesso!");
            cbListaClientes.removeItemAt(cbListaClientes.getSelectedIndex());
            limpar();
            travaCampos();
		}
	}
	
	public void preencheCampos(){
		ctrl.pegarDados(txtNome, txtTelefone, txtCelular, txtEmail, txtDtNascimento, rdbtnMasculino, rdbtnFeminino, cbListaClientes);
	}
	
	public void travaCampos(){
		lblNome.setEnabled(false);
		lblTelefone.setEnabled(false);
		lblEmail.setEnabled(false);
		lblDtNascimento.setEnabled(false);
		lblSexo.setEnabled(false);
		lblCelular.setEnabled(false);
		txtTelefone.setEnabled(false);
		txtNome.setEnabled(false);
		txtEmail.setEnabled(false);
		txtDtNascimento.setEnabled(false);
		txtCelular.setEnabled(false);
		rdbtnMasculino.setEnabled(false);
		rdbtnFeminino.setEnabled(false);
		btnAlterar.setEnabled(false);
		btnLimpar.setEnabled(false);
		btnExcluir.setEnabled(false);
		panelBuscaCliente.setEnabled(false);
	}
	
	
}
